安装
安装Protocal Buffers
终端执行以下命令
1 | brew -v |
这条命令是查看你的mac里面有没有装brew。brew是mac os里面,类似于ubuntu的apt-get的功能,都可以直接在终端输入命令然后安装程序。-v自然就是版本version的意思
下载brew安装环境
1 | ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) |
分别执行下面三条命令
1 | brew install automake |
就是利用brew下载安装了。protobuf就是我们想要的,另外两个是依赖库
clone Protocal Buffers库
执行下列命令
1 | git clone https://github.com/alexeyxo/protobuf-objc.git |
从github下载protobuf-objc这个工程,build脚本里面做的是编译
注意:编译工程过程中,有可能会出现错误。别慌!看编译错误的提示。一般错误只是因为环境变量和路径没有配置好,少了一些东西,例如少了编译protobuf这个工程的依赖库,按照提示添加路径即可。有了工程以后,我们就可以开始测试一下怎么用protobuf了
导入工程
打开Xcode!新建一个工程! 然后有两个方法把protobuf添加到你的工程里面,一个是直接添加,一个是利用cocoapod 强烈推荐后者,因为cocoapods能够很方便的管理第三方类库,以后人家的工程升级了,你只需要一行 pod update 就ok了。关于安装和使用cocoapod,属于另一个话题,在Podfile添加下面这个句子
platform :ios , 8.0
pod ProtocolBuffers,
在保存之后,到终端,cd到工程里面,
pod install
等一会,cocoapod就会帮我们添加好,以后我们就应该打开 project的workspace,因为添加了pod作为子工程。
创建Protocal Buffers文件
在你的工程里面,新建一个文件夹,假如命名叫Protobuf 在这个文件夹里面新建一个proto文件。例如要在本地储存用户信息,那么就新建一个user.proto 里面内容可以如下
1 | syntax = "proto2"; // Protocal Buffers版本 |
上面这个例子包括了几个要素。 一个是包名。包的概念在object c里面没有,java里面有,c++里面namespace也是差不多意思。 顺便提一下,oc里面一般在库名前面添加两个字母,起的作用差不多就是包的作用,作为类的上一层组织结构。 例如官方的NS,例如AFNetworking这种第三方类库的AF。
回到正题。编写pb文件,第二个要素是message 一个message就是一个整体,里面有哪些必要的内容,哪些可选的内容。详细的proto语法随便一找一大把,就不啰嗦了。
Protocal Buffers文件转换
写好了proto,接下来就是编译这个proto文件,protobuf-objc这个类库会编译声称一些源码,是读写proto数据的接口API。 编译命令如下: 先打开工程,建议单独新建一个文件夹作为输出路径,例如工程下新建文件夹Gen,用来放generate出来的.pb.h文件&&.pb.m文件 打开终端 cd到工程路径下
1 | protoc --plugin=/usr/local/bin/protoc-gen-objc person.proto --objc_out=./Gen |